package com.casic.ops.entity.request;

import com.casic.ops.consts.Const;
import com.casic.ops.consts.ExceptionHandlerType;
import com.casic.ops.consts.SerialType;
import com.casic.ops.consts.scheduler.SchedulerTaskStatus;
import com.orion.lang.wrapper.PageRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * @ClassName ops-platform
 * @Description  调度任务请求
 * @Author mianbin
 * @Date 2022/5/31 10:59
 * @Version 1.0
 **/
@Data
@EqualsAndHashCode(callSuper = true)
public class SchedulerTaskRequest extends PageRequest {

    /**
     * id
     */
    private Long id;

    /**
     * 任务名称
     */
    private String name;

    /**
     * 任务描述
     */
    private String description;

    /**
     * 执行命令
     */
    private String command;

    /**
     * cron表达式
     */
    private String expression;

    /**
     * 启用状态 1启用 2停用
     *
     * @see Const#ENABLE
     * @see Const#DISABLE
     */
    private Integer enableStatus;

    /**
     * 最近状态 10待调度 20调度中 30调度成功 40调度失败 50已停止
     *
     * @see SchedulerTaskStatus
     */
    private Integer latelyStatus;

    /**
     * 调度序列 10串行 20并行
     *
     * @see SerialType
     */
    private Integer serializeType;

    /**
     * 异常处理 10跳过所有 20跳过错误
     *
     * @see ExceptionHandlerType
     */
    private Integer exceptionHandler;

    /**
     * 机器id
     */
    private List<Long> machineIdList;

    /**
     * 次数
     */
    private Integer times;

}
